package leetcode.editor.vscdev.greedy;

public class lc55 {
    
}


class Solution {
    public boolean canJump(int[] nums) {
        // 换个思路, 将每个数字对应的可跳跃步数, 想成可覆盖范围, 只要在范围内, 那么就是可以到达的.
        return func1(nums);
    }
    private boolean func1(int[] nums){
        // 贪心算法
        // 记录当前可跳跃的最大范围
        int maxJump = 0;
        // 遍历数组
        for (int i = 0; i < nums.length; i++) {
            // 如果当前下标大于最大可跳跃范围, 那么就不能到达
            if (i > maxJump) {
                return false;
            }
            // 更新最大可跳跃范围
            maxJump = Math.max(maxJump, i + nums[i]);
        }
        // 如果遍历完数组, 那么就可以到达最后一个下标
        return true;
    }
}